package com.ctshk.rpc.finance.service;

import com.ctshk.common.dto.Result;
import com.ctshk.common.model.TokenUser;
import com.ctshk.rpc.finance.dto.bill.BillConfirmDTO;
import com.ctshk.rpc.finance.req.bill.BillConfirmAddReq;
import com.ctshk.rpc.finance.req.bill.BillConfirmIdReq;
import com.ctshk.rpc.finance.req.bill.RollBackReq;
import com.ctshk.rpc.finance.req.supplier.AprovalReq;

/**
 * <p>
 * 财务认款 服务类
 * </p>
 *
 * @author 叶冠峰
 * @since 2021-03-26
 */
public interface IFinanceBillConfirmService {

    /**
     * 提交审批
     * @param req
     * @return
     */
    Result add(BillConfirmAddReq req);

    /**
     * 认款信息
     * @param req
     * @return
     */
    Result<BillConfirmDTO> detail(BillConfirmIdReq req);

    /**
     * 审批
     * @param req
     * @param currentUser
     * @return
     */
    Result approval(AprovalReq req, TokenUser currentUser);

    /**
     * 撤回审批
     * @param req
     * @return
     */
    Result rollBack(RollBackReq req);
}
